﻿using BCCommon.Extensions;
using BCCommon.OAEnums.Businessflow;
using System;
using System.Collections.Generic;
using System.Text;

namespace BCDto.OA.PageBusiness.PageBusinessMappingDepartment
{
    /// <summary>
    /// OA系统页面业务映射部门
    /// </summary>
	public class PageBusinessMappingDepartmentDto
    {
        /// <summary>
        /// OA系统页面业务映射部门Id
        /// </summary>		
        public long PageBusinessMappingDepartmentId { get; set; }
        /// <summary>
        /// OA系统页面业务配置Id
        /// </summary>		
        public long PageBusinessConfigId { get; set; }
        /// <summary>
        /// 页面业务编码
        /// </summary>		
        public string PageBusinessCode { get; set; }
        /// <summary>
        /// 页面业务名称
        /// </summary>		
        public string PageBusinessName { get; set; }
        /// <summary>
        /// 归属公司Id
        /// </summary>
        public int BelongCompanyId { get; set; }
        /// <summary>
        /// 归属公司名称
        /// </summary>
        public string BelongCompanyName { get; set; }
        /// <summary>
        /// 部门Id
        /// </summary>		
        public int DepartmentId { get; set; }
        /// <summary>
        /// 部门名称
        /// </summary>		
        public string DepartmentName { get; set; }
        /// <summary>
        /// 公司Id
        /// </summary>		
        public int CompanyId { get; set; }
        /// <summary>
        /// 公司名称
        /// </summary>		
        public string CompanyName { get; set; }
        /// <summary>
        /// 是否所有职位显示
        /// </summary>		
        public bool IsAllJobTitle { get; set; }
        /// <summary>
        /// 允许显示的职位
        /// </summary>		
        public string AllowJobTitle { get; set; }
        /// <summary>
        /// 允许显示的职位字符串
        /// </summary>
        public string AllowJobTitleStr { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>		
        public DateTime CreateTime { get; set; }
        /// <summary>
        /// 业务流模型Id
        /// </summary>
        public long? BusinessFlowModelId { get; set; }
        /// <summary>
        /// 业务流模型名称
        /// </summary>		
        public string BusinessFlowModelName { get; set; }
        /// <summary>
        /// 是否自动分配
        /// </summary>
        public bool IsAutoAssign { get; set; }
        /// <summary>
        /// 分配规则类型
        /// </summary>
        public BusinessflowAssignRuleType? AssignRuleType { get; set; }
        /// <summary>
        /// 分配规则类型
        /// </summary>
        public string AssignRuleTypeStr { get { if (this.AssignRuleType == null) return string.Empty; else return this.AssignRuleType.Value.GetDescriptionString(); } }

        /// <summary>
        /// 已启用辅助规则
        /// </summary>
        public bool IsEnabledAuxiliaryRule { get; set; }
        /// <summary>
        /// 预定义超时处理小时数
        /// </summary>
        public int PredefinedTimeoutHour { get; set; }
        /// <summary>
        /// 通知分类Id
        /// </summary>
        public long NotificationCategoryId { get; set; }

        /// <summary>
        /// 通知分类编码
        /// </summary>
        public string NotificationCategoryCode { get; set; }
        /// <summary>
        /// 通知分类名称
        /// </summary>
        public string NotificationCategoryName { get; set; }
        /// <summary>
        /// 是否未动态公司（是，则废弃公司和部门Id，根据实际业务获取对应公司的部门下同职位人员列表）
        /// </summary>
        public bool IsDynamicCompany { get; set; }
    }
}
